#pragma once

namespace Base { namespace ConstStr {

    template<class T> 
    class ConstStrImpl;

    class ConstStr
    {
    private:
        ConstStr();
        ~ConstStr();

    public:
        static ConstStr* get();        
        const std::string* string(const std::string&);
        
    private:
        ConstStrImpl<std::string>*  m_impl;
    };

}}